package com.example.familytreebe.repository;

import com.example.familytreebe.entity.Person;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

@Repository
public interface PersonRepository extends JpaRepository<Person, Long> {
    // 暂时不需要添加自定义方法

    /**
     * 根据姓名模糊搜索和出生日期范围查询人员信息
     *
     * @param name       姓名关键字，支持模糊搜索
     * @param startDate  出生日期起始日期
     * @param endDate    出生日期结束日期
     * @return 符合条件的人员列表
     */
    @Query("SELECT p FROM Person p WHERE (:name IS NULL OR p.name LIKE %:name%) AND (:startDate IS NULL OR p.birthDate >= :startDate) AND (:endDate IS NULL OR p.birthDate <= :endDate)")
    List<Person> searchPersons(@Param("name") String name, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
}